package com.sirc.zp.sqlprovider;

import com.sirc.zp.domain.User;
import org.apache.ibatis.jdbc.SQL;

/**
 * Created by lenovo on 2018/3/7.
 */
public class UserProvider {
    /**
     * 通过用户名得到User实体
     * @param username
     * @return
     */
    public String getUserByName(final String username){
        return new SQL()
        {{
            SELECT("*");
            FROM("user");
            WHERE("username='"+username+"'");
        }}.toString();
    }
    /**
     * 通过id得到User实体
     * @param id
     * @return
     */
    public String getUserById(final Integer id){
        return new SQL()
        {{
            SELECT("*");
            FROM("user");
            WHERE("uid="+id);
        }}.toString();
    }
    /**
     * 通过用户名得到User实体
     * @param user 注册的用户信息
     * @return
     */
    public String addUser(final User user){
        return new SQL()
        {{
            INSERT_INTO("user");
            if(user.getUsername()!=null)
            {
                VALUES("username", "#{username}");
            }
            if(user.getPassword()!=null)
            {
                VALUES("password", "#{password}");
            }
            if(user.getType()!=null)
            {
                VALUES("type", "#{type}");
            }
            if(user.getBelongs()!=null)
            {
                VALUES("belongs", "#{belongs}");
            }
            if(user.getFamily()!=null)
            {
                VALUES("family", "#{family}");
            }
            if(user.getCreatetime()!=null)
            {
                VALUES("createtime", "#{createtime}");
            }
            if(user.getLasttime()!=null)
            {
                VALUES("lasttime", "#{lasttime}");
            }
        }}.toString();
    }
    /**
     * 更新用户的信息
     * @param user 更新用户信息
     * @return
     */
    public String updateUser(final User user){
        return new SQL(){{
            UPDATE("user");
            if(user.getUsername()!=null)
            {
                SET("username=#{username}");
            }
            if(user.getPassword()!=null)
            {
                SET("password=#{password}");
            }
            if(user.getType()!=null)
            {
                SET("type=#{type}");
            }
            if(user.getBelongs()!=null)
            {
                SET("belongs=#{belongs}");
            }
            if(user.getFamily()!=null)
            {
                SET("family=#{family}");
            }
            if(user.getCreatetime()!=null)
            {
                SET("createtime=#{createtime}");
            }
            if(user.getLasttime()!=null)
            {
                SET("lasttime=#{lasttime}");
            }
            WHERE("uid = #{uid}");
        }}.toString();
    }
    /**
     * 根据id删除User信息
     * @param id
     * @return
     */
    public String deleteUser(final Integer id){
        return new SQL()
        {{
            DELETE_FROM("user");
            WHERE("uid="+id);
        }}.toString();
    }
}
